<?php

/**
 * Exibe mensagens de erro de forma visual e agradável
 * @author: heekinho
 */
class Info {
	var $type;
	var $msg;
	var $icon;
	
	/**
	 * Constrói o objeto que irá armazenar todas as mensagens de erro, gerenciando com uma fila.
	 * @param string $type
	 * @param string $msg
	 * @param string $icon
	 * @return Info
	 */
	public function Info($type, $msg, $icon = ""){
		$this->type = $type;
		$this->msg = $msg;
		if(empty($icon)) $this->icon = $type . ".png";
	}
	
	/**
	 * Enfileira uma mensagem de erro.
	 * @param mixed $c_info
	 * @return void
	 */
	public static function queue_msg($c_info){
		//[ALERT]Ao modificar a função, prestar atenção ao fixed_params
		$fixed_params = 1;
		$extra_params = func_num_args() - $fixed_params;
		$info = clone($c_info);
		
		// Verifica quais foram os parametros extras passados, e faz a substituição necessária.
		for($i = 0; $i < $extra_params; $i++){
			$pattern = "/<" .$i . ">/";
			$replacement = func_get_arg($fixed_params + $i);
			
			$info->msg = preg_replace($pattern, $replacement, $info->msg);
		}
		
		// Enfileira o Erro
		global $site;
		array_push($site->msgs, $info);
		return $info;
	}
}


?>